package vardemeo;

public class day02 {
    public static void main(String[] args) {
        //1) 变量声明：-----相当于在银行开账户
        int a;//声明一个整型变量，名为a.
        int b, c, d;//声明三个整型变量，分别名为b,c.d.
        //int a;//编译错误，变量不能同名。
        //2)变量的初始化:----相当于给账户存钱
        int e = 250;//声明整型变量e并赋值为250。
        int f; //声明整型变量f;
        f = 250;//给f赋值为250；
        //3)变量的使用：-----使用的是账户里面的钱
        int g = 5;
        int h = g + 10;//取出g的值5，加上10后，在赋值给变量h
        System.out.println(h);//输出变量h的值15
        System.out.println("h");//输出h，双引号中的原样输出
        g = g + 10;//在g本身基础之上增10
        System.out.println(g);//输出g的值15

        //int i=3.14;//编译错误，数据类型必须匹配
        //System.out.println(i);//编译错误，变量i未声明int i
        //System.out.println(i);//编译错误，变量i未初始化

        //4)变量的命名；
        int a1, a_5$, _3c, $_b;
        //int a*b;//编译错误，不能包含*号等特殊符号
        //int 1a;//毕业错误，不能以数字开头
        //int k;//不直观，不建议
        //int 年龄；//允许，但不建议
        //int NianLing;//既不直观也不专业，必须杜绝
        int age;//建议“英文的见名知意”
        int score, myScore, myJavaScore;//“建议小驼峰命名法”


        //1）int :整型，4个字节，-21个多亿到21个多亿
        //int a= 25;//25为整数直接量，默认为int类型
        //int b= 100000000000;//编译错误，100亿默认为int类型，但超出int范文
        System.out.println(5 / 2);//2
        System.out.println(2 / 5);//
        System.out.println(5 / 2.0);//2.5
        //int c= 2147483647;//int的最大值
        //c = c+1;
        //System.out.println(c);//-2147483647(int的最小值)，发生溢出了，需要避免


        //2)long:长整型:8个字节，很大很大很大
        //long a=25L;//25L为长整型直接量，默认为long型
        //long b = 100000000000000;//编译错误，100亿默认为int类型，但超出int范围

        //long c= 100000000000L;//100亿L为长整型直接量

        //long q= 10000000000L*2*10L;
        //System.out.println(q);//200亿
        //long e= 10000000000L*4*10;
        //System.out.println(e);//400亿

        //double：浮点型，8个字节，很大很大很大
        //double a= 3.14159;//3.14459为浮点数直接量，默认为doubie类型
        double t = 3.0, y = 2.9;
        System.out.println(t - y);//0.1000000000009,有可能发生极小误差

        //5)boolean:布尔型，1个字节
        boolean u = true;//true为布尔型直接量
        boolean o = false;//false为布尔型直接量
        //boolean c= 25;//编译错误，布尔型只能赋值为true或false


        //6)char:字符型，2个字节
        char c1 = '女';//字符女
        char c2 = 'f';//字符f
        char c3 = '6';//字符6
        //char c4= 女;//编译错误，字符型直接量必须放在单引号中
        //char  c5='';//编译错误，必须要有字符
        //char  c6='女性';编译错误，只能有一个字符
        char c8 = '\\';
        System.out.println(c8);


        //自动类型转换和强制类型转换的语法声明一个较大类型的长整型变量，演示强转可能会发生的溢出问题声明一个较大精度的浮点型变量，演示强转可能会发生的丢失精度问题
//int a=5;
//long b=a;//自动类型转换
        // int c=(int) b;//强制类型转换

        //long d= 5;//自动类型转换
        //double e=5;//自动类型转换

        //long f= 100000000000L;
        // int g= (int)f;
        System.out.println(g);//强转有可能发生溢出
        //double h= 25.987;
        int i = (int) h;
        System.out.println(i);//，强转有可能失去精度


        //声明两个byte型变量b1和b2，并赋值为直接量声明一个byte型变量，并赋值为b1与b2的和

        byte b1 = 6;
        byte b2 = 8;
        byte b3 = (byte) (b1 + b2);
        System.out.println(b3);

        System.out.println(2 + 2);
        System.out.println(2 + '2');
        char k = ('2');
        System.out.println(k);


    }
}